Fix the control panel problem.
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Fri, 16 Sep 2005 18:50:50 +0000 (18:50 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Fri, 16 Sep 2005 18:50:50 +0000 (18:50 +0000)
The new image handling structure broke the vmx guest loading.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
tools/python/xen/xend/image.py

index 36b3db236bb2a1c007a0df773a79bd1ee4bdb247..cb37263423df2242c74961b2385b74460d75db32 100644 (file)
@@ -271,9 +271,10 @@ class VmxImageHandler(ImageHandler):
     def configure(self, config):
         ImageHandler.configure(self, config)
         if not config:
-            self.memmap, self.dmargs, self.device_model, self.display = self.vm.gatherVm(
+            self.memmap, dmargs, self.device_model, self.display = self.vm.gatherVm(
                 ("image/memmap"), ("image/dmargs"), ("image/device-model"),
                 ("image/display"))
+            self.dmargs = dmargs.split(' ')
             return
         
         self.memmap = sxp.child_value(config, 'memmap')
@@ -283,10 +284,10 @@ class VmxImageHandler(ImageHandler):
             raise VmError("vmx: missing device model")
         self.display = sxp.child_value(config, 'display')
 
-        self.storeVm(("image/memmap", self.memmap),
-                     ("image/dmargs", self.dmargs),
-                     ("image/device-model", self.device_model),
-                     ("image/display", self.display))
+        self.vm.storeVm(("image/memmap", self.memmap),
+                        ("image/dmargs", " ".join(self.dmargs)),
+                        ("image/device-model", self.device_model),
+                        ("image/display", self.display))
 
     def createImage(self):
         """Create a VM for the VMX environment.
@@ -346,7 +347,7 @@ class VmxImageHandler(ImageHandler):
                 ret.append("%s" % v)
 
         # Handle disk/network related options
-        devices = sxp.children(config, 'device')
+        devices = sxp.children(self.vm.config, 'device')
         for device in devices:
             name = sxp.name(sxp.child0(device))
             if name == 'vbd':